package com.sky.websocket;


import org.springframework.stereotype.Component;

import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

@Component
@ServerEndpoint("/ws/{sid}")
public class WebSocketServer {
    private static Map< String, Session> sessionMap = new HashMap();

    @OnOpen
    public void onOpen(Session session, @PathParam("sid") String sid) {
        System.out.println("客户端："+ sid +"建立联系");
        sessionMap.put(sid,session);
    }
    @OnMessage
    public void onMessage(String message, @PathParam("sid") String sid) {
        System.out.println("收到来自客户端："+ sid +"的信息" + message);
    }
    @OnClose
    public void onClose( @PathParam("sid") String sid) {
        System.out.println("客户端："+ sid +"建立联系");
        sessionMap.remove(sid);
    }
    public void sendToAllclient(String message) {
        Collection<Session> sessions = sessionMap.values();
        for (Session session : sessions){
            try{
                session.getBasicRemote().sendText(message);
            }catch (Exception e){
                e.printStackTrace();
            }
        }

    }





}
